package grupo1.fotomultas.Fotomultas.ui;

import grupo1.fotomultas.Fotomultas.Captura;
import grupo1.fotomultas.Fotomultas.HomeCapturas;

import org.uqbar.arena.actions.MessageSend;
import org.uqbar.arena.layout.ColumnLayout;
import org.uqbar.arena.widgets.Button;
import org.uqbar.arena.widgets.Label;
import org.uqbar.arena.widgets.Panel;
import org.uqbar.arena.widgets.Selector;
import org.uqbar.arena.widgets.TextBox;
import org.uqbar.arena.windows.SimpleWindow;
import org.uqbar.arena.windows.WindowOwner;

@SuppressWarnings("serial")
public class IngresarInfraccionWindow extends SimpleWindow<IngresarInfraccion> {

	private static final String ACEPTAR_INGRESO = "aceptarIngreso";
	private static final String CANCELAR_INGRESO = "cancelarIngreso";

	public IngresarInfraccionWindow(WindowOwner parent) {
		//super(parent, new CreacionReserva(reservasHome));
		super(parent, new IngresarInfraccion());
		setTitle("Ingresar infraccion");
		setTaskDescription("Procesar una infraccion manualmente");
	}

	@Override
	protected void createFormPanel(Panel mainPanel) {
		Panel editor = new Panel(mainPanel);
		editor.setLayout(new ColumnLayout(2));
		
		new Label(editor).setText("Patente");
		new TextBox(editor)
			.bindValueToProperty(IngresarInfraccion.PATENTE);
		
		new Label(editor).setText("Captura");
		
		new Selector(editor)
			// Listo solo las capturas pendientes
			.setContents(HomeCapturas.instance().getCapturasPendientes(), Captura.DESCRIPCION)
			.bindValueToProperty(IngresarInfraccion.CAPTURA);

	}
	
	@Override
	protected void addActions(Panel actionsPanel) {
		new Button(actionsPanel)
			.setAsDefault()
			.disableOnError()
			.setCaption("Cancelar")
			.onClick(new MessageSend(this, CANCELAR_INGRESO));

		new Button(actionsPanel)
			.setAsDefault()
			.disableOnError()
			.setCaption("Aceptar")
			.onClick(new MessageSend(this, ACEPTAR_INGRESO));
	}

	public void cancelarIngreso() {
		System.out.println("Se cancela el ingreso de la captura");
		close();
	}
	
	public void aceptarIngreso() {
		System.out.println("Se acepta el ingreso de la captura");
		getModel().ingresarInfraccion();
		close();
	}
}
